import { useEffect, useState } from "react"
import { useNavigate } from "react-router-dom"
import {message} from 'antd'

const useAuth = ()=>{

  const navigate = useNavigate()
  const [isAuthenticated,setIsAuthenticated] = useState(()=>{
    const token = localStorage.getItem('token')
    return !!token  // !! 会将任何数据类型强制转换为布尔值
  }) // 初始化的时候首先就要去检测token是否存在

  useEffect(()=>{
    // 获取token值
    const token = localStorage.getItem('token')
    if(!token){
      // 修改状态为false
      setIsAuthenticated(false)
      message.error('请先登录')
      // 跳转到登录页面
      setTimeout(()=>{
        navigate('/login')
      },1000)
    }

  },[navigate])
  
  // 将状态值返回
  return isAuthenticated  // true/false

}

export default useAuth